Property change history


We have some properties which we watch for changes. In Manager, I can right click and show history, and it nicely shows old value and new value, and the date on which the value changed

How can I get the same from the backend? I tried using the DialogWatchOperation and DialogWatchProperty, and that does work (sort of), but it doesnt neatly show me old and new value, it just shows the date on which a particular value was set, to get the old value I need to look in the next row, and using this in a complex query is tough.

Any built-in views/sps/functions which display the data with old and new values for all records?