I actually posted an answer for this and deleted it on second thought because I believed it may have been wrong. I also didn't have a fix for it.
I've caused this condition a couple of times when testing using HSQL in a server mode or playing around with v2.3 in an embedded environment and playing around with path settings and even opening it with Open Office if it had a newer HSQL. Once you open an embedded .odb with a HSQL version other than 1.8 it becomes unusable once closed; even when immediately opened after closing it. I have found no way to recover this as an embedded .odb (other than with backup). However there is a way to recovery. Turn it into a split DB.
- Using the broken .odb, use an archive manager to extract the files to another directory (line added 12/12/16)
- Create new directory.
- Place copy of extracted
database
folder into this new directory - Re-name database files backup, data, properties and script to your DB name choice (ie: mydb.backup, mydb.data, etc.)
- Create subfolder named
driver
in this new directory - From this post get hsqldb.jar v2.3.x and sqltool.jar and place in
driver
subfolder - From same post, get split wizard .odb and place in main folder
- Run wizard and table(s) should be available
- Finally, with new DB open, run old broken .odb - can't access tables but rest (forms, queries, reports) can be copied and pasted into new DB.
Recovery should be complete.
Edit 12/12/2016: Just discovered how to get embedded DB working again if that is really wanted. You must first follow the above process. That is needed to get actual working tables.
Use a copy of the bad embedded DB. Using a valid embedded DB, open .odb with an archive manager, then in the database folder, copy the information in the properties file (right click & open with text editor) and completely replace the information in the bad properties file. Save the change. Update the Archive. Now for the script file. The objective of changing the script file is only to get one where the access to the tables section is permitted.
Edit the script file (right click & open with text editor) of the bad .odb (in database folder) and delete all lines EXCEPT the following:
SET DATABASE COLLATION "Latin1_General"
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 0 MILLIS
Save file and Archive and close all. Now open the repaired embedded .odb and the newly created (from first procedure) split DB’s. Copy the tables from the split and paste in embedded. Once done, embedded will function again.
This is a somewhat meticulous process, and somewhat daunting, but by using copies of files and care in following the procedure the process works.
FYI - The script file contains the details of the tables used. The properties file contains the information of the HSQL being used.
A bit more information - the file opens fine in OpenOffice 4.0.1 under WinXP. I'm trying to use it in LibreOffice 5.1.5.2 under Ubuntu.