Yes, this is certainly a challenge. Versioning is not native to Glide, nor is there any feature to merge changes / updates from one copy of an app to another copy.
What some people do is change the app link to the new copy of the app with the changes;
The method I prefer is to turn off auto-publishing and only push out new features after debugging and testing;
Neither of these addresses the possibility of the database structure needing to change (hopefully not often) or, as you said, backing out updates to the data.
I also keep a backup (duplicate) of every version of my apps. So before rolling out changes, I duplicate the app, then update the version number and publish the changes.
The safest way would be to have two copies of your app and data and then you are left with having to make the changes twice.
I do believe this is why people keep asking for the ability to copy a tab from one app to another and to re-use tabs. If the underlying data is the same format and same names, it just makes sense.