A system and method are used for updating software to include new versions of the software without losing the ability to return to the prior software in the event of flaws or deficiencies in the new version. A framework organizes conversion and reversion codes into major components responsible for conversion of the data entities. The components are ordered based on their dependence on other components first completing their conversions. Each component implements an interface allowing a framework to process sequentially through all components and sequentially retrieve handles for their respective entities, and accessing the version of the entity. The framework processes an ordered set of interfaces representing the conversion/reversion, checks for progressively newer versions. As data structures are changed for a single component, a new version is appended to that component's ordered set of version interfaces. Restart of a conversion or reversion following an interrupt is also provided.