diff --git a/application/pom.xml b/application/pom.xml
index df6195fd24..eb1971f910 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -249,11 +249,6 @@
             spring-test-dbunit
             test
         
-        
-            ru.yandex.qatools.embed
-            postgresql-embedded
-            test
-        
     
 
     
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index a7c93a21c6..a06b9d3765 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -106,7 +106,7 @@ coap:
   timeout: "${COAP_TIMEOUT:10000}"
 
 database:
-  type: "${DATABASE_TYPE:cassandra}" # cassandra OR postgres
+  type: "${DATABASE_TYPE:cassandra}" # cassandra OR sql
 
 # Cassandra driver configuration parameters
 cassandra:
diff --git a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
index 726b2052aa..6a46edee47 100644
--- a/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
+++ b/application/src/test/java/org/thingsboard/server/system/SystemSqlTestSuite.java
@@ -18,7 +18,7 @@ package org.thingsboard.server.system;
 import org.junit.ClassRule;
 import org.junit.extensions.cpsuite.ClasspathSuite;
 import org.junit.runner.RunWith;
-import org.thingsboard.server.dao.CustomPostgresUnit;
+import org.thingsboard.server.dao.CustomSqlUnit;
 
 import java.util.Arrays;
 
@@ -30,9 +30,10 @@ import java.util.Arrays;
 public class SystemSqlTestSuite {
 
     @ClassRule
-    public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
-            Arrays.asList("postgres/schema.sql", "postgres/system-data.sql"),
-            "postgres-embedded-test.properties");
+    public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+            Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
+            "sql-test.properties",
+            "sql/drop-all-tables.sql");
 
 
 }
diff --git a/dao/pom.xml b/dao/pom.xml
index 2bb77511bb..ff4237c1da 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -170,8 +170,8 @@
             test
         
         
-            ru.yandex.qatools.embed
-            postgresql-embedded
+            org.hsqldb
+            hsqldb
             test
         
     
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
index 8abab4a135..2fd6c97689 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
@@ -45,7 +45,7 @@ public abstract class JpaAbstractDao, D>
     protected void setSearchText(E entity) {}
 
     @Override
-    @Transactional(propagation = REQUIRES_NEW)
+    @Transactional
     public D save(D domain) {
         E entity;
         try {
@@ -64,7 +64,6 @@ public abstract class JpaAbstractDao, D>
     }
 
     @Override
-    @Transactional(propagation = REQUIRES_NEW)
     public D findById(UUID key) {
         log.debug("Get entity by key {}", key);
         E entity = getCrudRepository().findOne(key);
@@ -78,7 +77,7 @@ public abstract class JpaAbstractDao, D>
     }
 
     @Override
-    @Transactional(propagation = REQUIRES_NEW)
+    @Transactional
     public boolean removeById(UUID key) {
         getCrudRepository().delete(key);
         log.debug("Remove request: {}", key);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
index 5f902bfa6c..79779e8e1e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
@@ -73,7 +73,6 @@ public class JpaAlarmDao extends JpaAbstractDao implements A
     }
 
     @Override
-    @Transactional(propagation = REQUIRES_NEW)
     public ListenableFuture findLatestByOriginatorAndType(TenantId tenantId, EntityId originator, String type) {
         return service.submit(() -> {
             List latest = alarmRepository.findLatestByOriginatorAndType(
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
index 56eb5e8b8b..feae4a6b24 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
@@ -80,7 +80,5 @@ public interface DeviceRepository extends CrudRepository {
 
     List findDevicesByTenantIdAndCustomerIdAndIdIn(UUID tenantId, UUID customerId, List deviceIds);
 
-    List findDevicesByTenantId(UUID tenantId);
-
     List findDevicesByTenantIdAndIdIn(UUID tenantId, List deviceIds);
 }
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
index 365b90fd1c..62d1a1b683 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
@@ -30,12 +30,12 @@ import org.thingsboard.server.common.data.page.TimePageLink;
 import org.thingsboard.server.common.data.relation.EntityRelation;
 import org.thingsboard.server.common.data.relation.RelationTypeGroup;
 import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
 import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
 import org.thingsboard.server.dao.model.sql.RelationEntity;
 import org.thingsboard.server.dao.relation.RelationDao;
 import org.thingsboard.server.dao.sql.JpaAbstractDaoListeningExecutorService;
 import org.thingsboard.server.dao.sql.JpaAbstractSearchTimeDao;
+import org.thingsboard.server.dao.util.SqlDao;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
index 6abbbbd610..2c2e63687e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
@@ -17,11 +17,11 @@ package org.thingsboard.server.dao.sql.relation;
 
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.CrudRepository;
-import org.thingsboard.server.dao.util.SqlDao;
+import org.springframework.transaction.annotation.Transactional;
 import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
 import org.thingsboard.server.dao.model.sql.RelationEntity;
+import org.thingsboard.server.dao.util.SqlDao;
 
-import javax.transaction.Transactional;
 import java.util.List;
 import java.util.UUID;
 
@@ -51,5 +51,5 @@ public interface RelationRepository
                                                     String fromType);
 
     @Transactional
-    List deleteByFromIdAndFromType(UUID fromId, String fromType);
+    void deleteByFromIdAndFromType(UUID fromId, String fromType);
 }
diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java b/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
index 88a107b3eb..1ebc271706 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/util/SqlDao.java
@@ -17,6 +17,6 @@ package org.thingsboard.server.dao.util;
 
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 
-@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "postgres")
+@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "sql")
 public @interface SqlDao {
 }
diff --git a/dao/src/main/resources/postgres/demo-data.sql b/dao/src/main/resources/sql/demo-data.sql
similarity index 100%
rename from dao/src/main/resources/postgres/demo-data.sql
rename to dao/src/main/resources/sql/demo-data.sql
diff --git a/dao/src/main/resources/postgres/schema.sql b/dao/src/main/resources/sql/schema.sql
similarity index 93%
rename from dao/src/main/resources/postgres/schema.sql
rename to dao/src/main/resources/sql/schema.sql
index 038f25adaf..a3aa723b4e 100644
--- a/dao/src/main/resources/postgres/schema.sql
+++ b/dao/src/main/resources/sql/schema.sql
@@ -17,7 +17,7 @@
 
 CREATE TABLE IF NOT EXISTS admin_settings (
     id uuid NOT NULL CONSTRAINT admin_settings_pkey PRIMARY KEY,
-    json_value text,
+    json_value varchar,
     key character varying(255)
 );
 
@@ -25,7 +25,7 @@ CREATE TABLE IF NOT EXISTS alarm (
     id uuid NOT NULL CONSTRAINT alarm_pkey PRIMARY KEY,
     ack_ts bigint,
     clear_ts bigint,
-    additional_info text,
+    additional_info varchar,
     end_ts bigint,
     originator_id uuid,
     originator_type integer,
@@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS alarm (
 
 CREATE TABLE IF NOT EXISTS asset (
     id uuid NOT NULL CONSTRAINT asset_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     customer_id uuid,
     name character varying(255),
     search_text character varying(255),
@@ -64,7 +64,7 @@ CREATE TABLE IF NOT EXISTS component_descriptor (
     id uuid NOT NULL CONSTRAINT component_descriptor_pkey PRIMARY KEY,
     actions character varying(255),
     clazz character varying(255),
-    configuration_descriptor text,
+    configuration_descriptor varchar,
     name character varying(255),
     scope character varying(255),
     search_text character varying(255),
@@ -73,7 +73,7 @@ CREATE TABLE IF NOT EXISTS component_descriptor (
 
 CREATE TABLE IF NOT EXISTS customer (
     id uuid NOT NULL CONSTRAINT customer_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     address character varying(255),
     address2 character varying(255),
     city character varying(255),
@@ -89,7 +89,7 @@ CREATE TABLE IF NOT EXISTS customer (
 
 CREATE TABLE IF NOT EXISTS dashboard (
     id uuid NOT NULL CONSTRAINT dashboard_pkey PRIMARY KEY,
-    configuration text,
+    configuration varchar,
     customer_id uuid,
     search_text character varying(255),
     tenant_id uuid,
@@ -98,7 +98,7 @@ CREATE TABLE IF NOT EXISTS dashboard (
 
 CREATE TABLE IF NOT EXISTS device (
     id uuid NOT NULL CONSTRAINT device_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     customer_id uuid,
     type character varying(255),
     name character varying(255),
@@ -116,7 +116,7 @@ CREATE TABLE IF NOT EXISTS device_credentials (
 
 CREATE TABLE IF NOT EXISTS event (
     id uuid NOT NULL CONSTRAINT event_pkey PRIMARY KEY,
-    body text,
+    body varchar,
     entity_id uuid,
     entity_type character varying(255),
     event_type character varying(255),
@@ -127,10 +127,10 @@ CREATE TABLE IF NOT EXISTS event (
 
 CREATE TABLE IF NOT EXISTS plugin (
     id uuid NOT NULL CONSTRAINT plugin_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     api_token character varying(255),
     plugin_class character varying(255),
-    configuration text,
+    configuration varchar,
     name character varying(255),
     public_access boolean,
     search_text character varying(255),
@@ -145,18 +145,18 @@ CREATE TABLE IF NOT EXISTS relation (
     to_type character varying(255),
     relation_type_group character varying(255),
     relation_type character varying(255),
-    additional_info text,
+    additional_info varchar,
     CONSTRAINT relation_unq_key UNIQUE (from_id, from_type, relation_type_group, relation_type, to_id, to_type)
 );
 
 CREATE TABLE IF NOT EXISTS rule (
     id uuid NOT NULL CONSTRAINT rule_pkey PRIMARY KEY,
-    action text,
-    additional_info text,
-    filters text,
+    action varchar,
+    additional_info varchar,
+    filters varchar,
     name character varying(255),
     plugin_token character varying(255),
-    processor text,
+    processor varchar,
     search_text character varying(255),
     state character varying(255),
     tenant_id uuid,
@@ -165,7 +165,7 @@ CREATE TABLE IF NOT EXISTS rule (
 
 CREATE TABLE IF NOT EXISTS tb_user (
     id uuid NOT NULL CONSTRAINT tb_user_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     authority character varying(255),
     customer_id uuid,
     email character varying(255) UNIQUE,
@@ -177,7 +177,7 @@ CREATE TABLE IF NOT EXISTS tb_user (
 
 CREATE TABLE IF NOT EXISTS tenant (
     id uuid NOT NULL CONSTRAINT tenant_pkey PRIMARY KEY,
-    additional_info text,
+    additional_info varchar,
     address character varying(255),
     address2 character varying(255),
     city character varying(255),
@@ -228,7 +228,7 @@ CREATE TABLE IF NOT EXISTS widget_type (
     id uuid NOT NULL CONSTRAINT widget_type_pkey PRIMARY KEY,
     alias character varying(255),
     bundle_alias character varying(255),
-    descriptor text,
+    descriptor varchar(2000000),
     name character varying(255),
     tenant_id uuid
 );
@@ -236,7 +236,6 @@ CREATE TABLE IF NOT EXISTS widget_type (
 CREATE TABLE IF NOT EXISTS widgets_bundle (
     id uuid NOT NULL CONSTRAINT widgets_bundle_pkey PRIMARY KEY,
     alias character varying(255),
-    image bytea,
     search_text character varying(255),
     tenant_id uuid,
     title character varying(255)
diff --git a/dao/src/main/resources/postgres/system-data.sql b/dao/src/main/resources/sql/system-data.sql
similarity index 100%
rename from dao/src/main/resources/postgres/system-data.sql
rename to dao/src/main/resources/sql/system-data.sql
diff --git a/dao/src/test/java/org/thingsboard/server/dao/CustomPostgresUnit.java b/dao/src/test/java/org/thingsboard/server/dao/CustomSqlUnit.java
similarity index 65%
rename from dao/src/test/java/org/thingsboard/server/dao/CustomPostgresUnit.java
rename to dao/src/test/java/org/thingsboard/server/dao/CustomSqlUnit.java
index feaaa6b1fa..3c41d1537a 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/CustomPostgresUnit.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/CustomSqlUnit.java
@@ -19,7 +19,6 @@ import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.rules.ExternalResource;
-import ru.yandex.qatools.embed.postgresql.EmbeddedPostgres;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -30,58 +29,58 @@ import java.sql.SQLException;
 import java.util.List;
 import java.util.Properties;
 
-import static ru.yandex.qatools.embed.postgresql.distribution.Version.Main.V9_6;
 
 /**
  * Created by Valerii Sosliuk on 6/24/2017.
  */
 @Slf4j
-public class CustomPostgresUnit extends ExternalResource {
-
-    private static final String HOST = "host";
-    private static final String PORT = "port";
-    private static final String DATABASE = "database";
-    private static final String USERNAME = "username";
-    private static final String PASSWORD = "password";
+public class CustomSqlUnit extends ExternalResource {
 
     private List sqlFiles;
     private Properties properties;
+    private String dropAllTablesSqlFile;
 
-    private EmbeddedPostgres postgres;
-
-    public CustomPostgresUnit(List sqlFiles, String configurationFileName) {
+    public CustomSqlUnit(List sqlFiles, String configurationFileName, String dropAllTablesSqlFile) {
         this.sqlFiles = sqlFiles;
         this.properties = loadProperties(configurationFileName);
+        this.dropAllTablesSqlFile = dropAllTablesSqlFile;
     }
 
     @Override
     public void before() {
-        postgres = new EmbeddedPostgres(V9_6);
-        load();
-    }
-
-    @Override
-    public void after() {
-        postgres.stop();
-    }
-
-    private void load() {
         Connection conn = null;
         try {
-            String url = postgres.start(properties.getProperty(HOST),
-                                        Integer.parseInt(properties.getProperty(PORT)),
-                                        properties.getProperty(DATABASE),
-                                        properties.getProperty(USERNAME),
-                                        properties.getProperty(PASSWORD));
-
-            conn = DriverManager.getConnection(url);
+            String url = properties.getProperty("spring.datasource.url");
+            conn = DriverManager.getConnection(url, "sa", "");
             for (String sqlFile : sqlFiles) {
                 URL sqlFileUrl = Resources.getResource(sqlFile);
                 String sql = Resources.toString(sqlFileUrl, Charsets.UTF_8);
                 conn.createStatement().execute(sql);
             }
         } catch (IOException | SQLException e) {
-            throw new RuntimeException("Unable to start embedded postgres. Reason: " + e.getMessage(), e);
+            throw new RuntimeException("Unable to start embedded hsqldb. Reason: " + e.getMessage(), e);
+        } finally {
+            if (conn != null) {
+                try {
+                    conn.close();
+                } catch (SQLException e) {
+                    log.error(e.getMessage(), e);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void after() {
+        Connection conn = null;
+        try {
+            String url = properties.getProperty("spring.datasource.url");
+            conn = DriverManager.getConnection(url, "sa", "");
+            URL dropAllTableSqlFileUrl = Resources.getResource(dropAllTablesSqlFile);
+            String dropAllTablesSql = Resources.toString(dropAllTableSqlFileUrl, Charsets.UTF_8);
+            conn.createStatement().execute(dropAllTablesSql);
+        } catch (IOException | SQLException e) {
+            throw new RuntimeException("Unable to clean up embedded hsqldb. Reason: " + e.getMessage(), e);
         } finally {
             if (conn != null) {
                 try {
diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
index c74aeeff27..afa991fec2 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDaoTestSuite.java
@@ -24,13 +24,14 @@ import java.util.Arrays;
 
 @RunWith(ClasspathSuite.class)
 @ClassnameFilters({
-        "org.thingsboard.server.dao.sql.*Test"
+        "org.thingsboard.server.dao.sql.*ABTest"
 })
 public class JpaDaoTestSuite {
 
     @ClassRule
-    public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
-            Arrays.asList("postgres/schema.sql", "postgres/system-data.sql"),
-            "postgres-embedded-test.properties");
+    public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+            Arrays.asList("sql/schema.sql", "sql/system-data.sql"),
+            "sql-test.properties",
+            "sql/drop-all-tables.sql");
 
 }
diff --git a/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java b/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java
index 0a0f7d8dae..507eb4d4af 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/JpaDbunitTestConfig.java
@@ -18,6 +18,7 @@ package org.thingsboard.server.dao;
 import com.github.springtestdbunit.bean.DatabaseConfigBean;
 import com.github.springtestdbunit.bean.DatabaseDataSourceConnectionFactoryBean;
 import org.dbunit.DatabaseUnitException;
+import org.dbunit.ext.hsqldb.HsqldbDataTypeFactory;
 import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -41,7 +42,7 @@ public class JpaDbunitTestConfig {
     @Bean
     public DatabaseConfigBean databaseConfigBean() {
         DatabaseConfigBean databaseConfigBean = new DatabaseConfigBean();
-        databaseConfigBean.setDatatypeFactory(new PostgresqlDataTypeFactory());
+        databaseConfigBean.setDatatypeFactory(new HsqldbDataTypeFactory());
         return databaseConfigBean;
     }
 
diff --git a/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java b/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
index 6ba4e7ab45..0f0eacc3f8 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/SqlDaoServiceTestSuite.java
@@ -29,8 +29,9 @@ import java.util.Arrays;
 public class SqlDaoServiceTestSuite {
 
     @ClassRule
-    public static CustomPostgresUnit postgresUnit = new CustomPostgresUnit(
-            Arrays.asList("postgres/schema.sql", "postgres/system-data.sql", "postgres/system-test.sql"),
-            "postgres-embedded-test.properties");
+    public static CustomSqlUnit sqlUnit = new CustomSqlUnit(
+            Arrays.asList("sql/schema.sql", "sql/system-data.sql", "sql/system-test.sql"),
+            "sql-test.properties",
+            "sql/drop-all-tables.sql");
 
 }
diff --git a/dao/src/test/resources/postgres-embedded-test.properties b/dao/src/test/resources/postgres-embedded-test.properties
deleted file mode 100644
index a7279b9996..0000000000
--- a/dao/src/test/resources/postgres-embedded-test.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-host: localhost
-port: 5433
-database: thingsboard-test
-username: postgres
-password: postgres
\ No newline at end of file
diff --git a/dao/src/test/resources/sql-test.properties b/dao/src/test/resources/sql-test.properties
index 93402cff25..16a9d8cc00 100644
--- a/dao/src/test/resources/sql-test.properties
+++ b/dao/src/test/resources/sql-test.properties
@@ -1,8 +1,8 @@
-database.type=postgres
+database.type=sql
 
 spring.jpa.show-sql=false
 spring.jpa.hibernate.ddl-auto=validate
 
-spring.datasource.url=jdbc:postgresql://localhost:5433/thingsboard-test
-spring.datasource.username=postgres
-spring.datasource.password=postgres
+spring.datasource.username=sa
+spring.datasource.password=
+spring.datasource.url=jdbc:hsqldb:mem:thingsboardTestDb;sql.enforce_size=false
diff --git a/dao/src/test/resources/sql/drop-all-tables.sql b/dao/src/test/resources/sql/drop-all-tables.sql
new file mode 100644
index 0000000000..610653d565
--- /dev/null
+++ b/dao/src/test/resources/sql/drop-all-tables.sql
@@ -0,0 +1,20 @@
+TRUNCATE TABLE admin_settings;
+TRUNCATE TABLE alarm;
+TRUNCATE TABLE asset;
+TRUNCATE TABLE attribute_kv;
+TRUNCATE TABLE component_descriptor;
+TRUNCATE TABLE customer;
+TRUNCATE TABLE dashboard;
+TRUNCATE TABLE device;
+TRUNCATE TABLE device_credentials;
+TRUNCATE TABLE event;
+TRUNCATE TABLE plugin;
+TRUNCATE TABLE relation;
+TRUNCATE TABLE rule;
+TRUNCATE TABLE tb_user;
+TRUNCATE TABLE tenant;
+TRUNCATE TABLE ts_kv;
+TRUNCATE TABLE ts_kv_latest;
+TRUNCATE TABLE user_credentials;
+TRUNCATE TABLE widget_type;
+TRUNCATE TABLE widgets_bundle;
\ No newline at end of file
diff --git a/dao/src/test/resources/postgres/system-test.sql b/dao/src/test/resources/sql/system-test.sql
similarity index 100%
rename from dao/src/test/resources/postgres/system-test.sql
rename to dao/src/test/resources/sql/system-test.sql
diff --git a/pom.xml b/pom.xml
index 7b2c5f8c34..762d0dc017 100755
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,7 @@
         2.6.1
         1.56
         2.0.1
+        2.4.0
         2.5.3
         1.2.1
         9.4.1211
@@ -746,6 +747,12 @@
                 bcpkix-jdk15on
                 ${bouncycastle.version}
             
+            
+                org.hsqldb
+                hsqldb
+                ${hsqldb.version}
+                test
+            
             
                 ru.yandex.qatools.embed
                 postgresql-embedded