This decouples software upgrades from schema changes. Now when the schema changes, each view’s code must change to provide the same abstraction to the new schema. The change in schema and the upgrade of view code happen atomically, enabling smooth upgrades.