Here's a realtively simple way to implement data versioning in a database, in a way that should be scalable as well. It only needs a couple of support tables and a single function and can apply versioning across multiple data sets concurrently.
XML to DDL is a set of python programs to convert an XML representation of a schema into a database and vice versa. It can also examine the differences between two databases and emit the ALTER DDL statements required to bring the database up-to-date. This