Our win32 application assembles objects from the data in a number of tables in a MySQL relational database. Of such an object, multiple revisions are stored in the database.
Have you looked at Open Source DiffKit?
www.diffkit.org
I think it does what you want.