[x] the c++ code should always return the full filename with the extension
[x] the c++ code should mantain the ability to open a database if filename does not contain the extension, but should in all the cases return the correct real filename
[x] the GUI may decide to remove the extension when displaying the database name, for example in the switcher window.
This leads to messy code and workarounds.