As long as your app does not have another app building on it, deleting the app and recovering only the relevant data from the DB should work fine. Each app has its dedicated schema in the DB so at least it should be straightforward to figure out what you need.
If you have other apps building on it, it´s another question as you´d need to consider relationships with data from other apps as well.
I personally never had to downgrade an app. If I botched up the UI, I would release a newer, fixed version. The only real reason for a downgrade afaik, is when you somehow bungle up data. If you work on a dedicated test/dev instance and only release your app once it´s tested and ready - that really should not happen, I hope at least 🙂