You can do that with JSONDB too. They are just text files. I do this myself. This is in fact my backup and restore strategy (with the added help of Ansible to rebuild the machine in the first place).
There are several. Here is one I wrote up awhile back. Actually that one was a REALLY long while back, pre OH 2 days. This thread might have some more useful information. The big thing is to make sure to include /etc/openhab2 and parts of /var/lib/openhab2 in your configuration control. You can use two different repos or use the symlink trick I described to make the checked out repo appear in the right spots for OH.
I’d apply a nuance to this and say using a mix of PaperUI and files for the same type of thing is not recommended. For example, I manage all my Things through PaperUI but I manage all my Items through .items files.
Part of this is just legacy, I got started on OH 1.x so already had .items files. Another part of this is because PaperUI does not yet have full support for all that Items do like tags or 1.x version bindings of which I use several because there isn’t a 2.x version yet (MQTT will soon be replaced thanks to your hard work, but I still need Expire (I haven’t seen any discussion on that issue you opened awhile back concerning Timers in ESH) and HTTP). So for consistency I’ve kept my Items in .items files.
You will find many opinions on this matter. My own is to let PaperUI manage binding installation and configuration and Things and use text file configuration for everything else. Given the current state of the art, this provides a good compromise between taking advantage of all the goodness in PaperUI and support for some newer (e.g. tags) and older concepts (e.g. 1.x version bindings).
It’s not so hard to change over if you need to at some point. I’m somewhat surprised someone hasn’t written a script to go back and forth yet between the two.