Hi Allan,
Just adding the methods to your Data class will be considered a bad design, because
you should try as much as possible to program against interfaces, so your code becomes implementation-independent.
If you develop your code only using references of type Data (instead of DBMain) and you add specific methods to your Data class, your code will work perfectly. But problems occur when for example: Your boss tells another developer (me for example) to create a MySqlData class (also implementing DBMain and using a MySql database instead of a flat file) and then I have to hand over this MySqlData class to you and you have to change your program and start using the MySqlData class. Do you see what problems will occur?
I agree working with String-arrays is not that fun (and error-prone) and using a Room-object like you certainly is a good idea. I didn't use a facade in front of my Data class, but used a BusinessService interface. This interface uses the Room-objects in its methods and convert the String-array to an object or vice versa.
Kind regards,
Roel