HSQLDB (HyperSQL base de datos) es el principal motor de base de datos relacional SQL escrito en Java. Dispone de un controlador JDBC y apoya ANSI casi completa de SQL-92(formato de árbol BNF), además de muchos de SQL: 2008 las mejoras. Ofrece un pequeño motor de base de datos rápido que ofrece en memoria y un disco basado en tablas y tiene soporte incorporado y los modos de servidor. Además, incluye herramientas como una herramienta de línea de comandos SQL y herramientas de consulta GUI.
 
El producto está siendo utilizado como una base de datos y motor de persistencia en muchos proyectos Open Source Software y en proyectos comerciales y productos. En su versión actual es muy estable y fiable. Es mejor conocida por su pequeño tamaño, la capacidad de ejecutar completamente en la memoria, su flexibilidad y velocidad.
 
Versión 2.0 es compatible con la más amplia gama de características estándar SQL visto en ningún otro motor de fuente abierta de bases de datos. Hemos llegado a la conformidad con SQL estándar SQL casi lleno-1992 de nivel avanzado y SQL: 2008 las características de lenguaje básico más una extensa lista de SQL: 2008 y las características opcionales muchas extensiones. El motor es totalmente compatible con múltiples subprocesos y 2PL y modelos de control MVCC transacción.
 
Es totalmente gratuito para uso y distribución con licencia BSD estándar. Completamente libre de costo o restricciones y totalmente compatible con todas las principales licencias de código abierto. Código fuente de Java y una extensa documentación incluida.
 
Yo uso esta base para correr test que interactúan con base de datos.  Si usamos maven agregamos la siguiente dependencia en el pom:
<dependency>
    <groupId>hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>1.8.0.10</version>
</dependency>
Y la configuramos con spring el dataSource:
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
        <property name="url" value="jdbc:hsqldb:mem:testDB" />
        <property name="username" value="sa"/>
        <property name="password" value=""/>
 
        <property name="defaultAutoCommit">
            <value>false</value>
        </property>
 
        <property name="poolPreparedStatements">
            <value>true</value>
        </property>
        
 
        <property name="initialSize">
            <value>1</value>
        </property>
        
 
        <property name="maxActive">
            <value>90</value>
        </property>
        
 
        <property name="maxIdle">
            <value>50</value>
        </property>
    </bean>
 
Y listo!!
 
