Objects are serialized to a database using the .NET XML serializer. The object can change over time, and therefore multiple versions exist in the database at one time.
Look here this talk about best practices on WCF datacontract versioning, this is a bit more specific than what you really want, but these patterns solve the same problem as yours, you can use them in any technology you want.