My application uses Microsoft Access but now may be hosted on Linux. While accessed from multiple computers one may update records when it's being read by other users.
The embedded database should support inner SQL, joins, etc. With SQLite existing queries fail, using inner join the brackets after FROM were not accepted. Right join too is not supported. I know Apache Derby and H2 but prefer your opinion.
My application in Java uses a Microsoft Access mdb file shared on a network drive, making DSN-less connections from remote computers.
I think it's Firebird.
Even Cte's are supported in Firebird 2.1 !
Firebird works on Windows, Linux, Mac OS...
Jaybird driver for Java.
There are some good migration tools from Access to Firebird: