diff --git a/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseUpdateChangeLogTest.java b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseUpdateChangeLogTest.java
new file mode 100644
index 0000000..a730150
--- /dev/null
+++ b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseUpdateChangeLogTest.java
@@ -0,0 +1,59 @@
+package tech.ydb.liquibase;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import liquibase.exception.CommandExecutionException;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
+/**
+ * @author Kirill Kurdyukov
+ */
+public class YdbDatabaseUpdateChangeLogTest extends BaseTest {
+
+ @Test
+ void integrationTest() throws CommandExecutionException, SQLException {
+ migrateChangeFile("./changelogs/changelog-init.xml");
+ try (PreparedStatement ps = DriverManager.getConnection(jdbcUrl()).prepareStatement(
+ "INSERT INTO DATABASECHANGELOG(" +
+ "ID, AUTHOR, FILENAME, DATEEXECUTED, " +
+ "ORDEREXECUTED, EXECTYPE, MD5SUM, " +
+ "DESCRIPTION, COMMENTS, TAG, LIQUIBASE, " +
+ "CONTEXTS, LABELS, DEPLOYMENT_ID) " +
+ "VALUES (?, 'kurdyukov-kir', 'stub-file.xml', DATETIME('2024-04-01T11:30:20Z'), ?, " +
+ "'EXECUTED', '9:cb49879b530528bc2555422bb7db58da', 'Stub', " +
+ "'', '', '4.25.1', '', '', '1971019939')"
+ )) {
+ for (int i = 0; i < 210; i++) {
+ ps.setString(1, String.valueOf(i));
+ ps.setInt(2, i);
+
+ ps.executeUpdate();
+ }
+ }
+
+ migrateChangeFile("./changelogs/update/changelog-step-1.xml");
+ try (Connection connection = DriverManager.getConnection(jdbcUrl())) {
+ ResultSet resultSet = connection.createStatement()
+ .executeQuery("SELECT COUNT(*) AS cnt FROM test WHERE token is NULL");
+ assertTrue(resultSet.next());
+ assertEquals(3, resultSet.getLong("cnt"));
+ }
+
+ migrateChangeFile("./changelogs/update/changelog-step-2.xml");
+ try (Connection connection = DriverManager.getConnection(jdbcUrl())) {
+ ResultSet resultSet = connection.createStatement()
+ .executeQuery("SELECT COUNT(*) AS cnt FROM test WHERE token is NULL");
+ assertTrue(resultSet.next());
+ assertEquals(0, resultSet.getLong("cnt"));
+ }
+
+ try (Connection connection = DriverManager.getConnection(jdbcUrl())) {
+ connection.createStatement().execute("DROP TABLE test");
+ }
+ }
+}
diff --git a/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-1.xml b/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-1.xml
new file mode 100644
index 0000000..d4a2e0a
--- /dev/null
+++ b/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-1.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-2.xml b/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-2.xml
new file mode 100644
index 0000000..a95e527
--- /dev/null
+++ b/liquibase-dialect/src/test/resources/changelogs/update/changelog-step-2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/liquibase-dialect/src/test/resources/changelogs/update/create-table.xml b/liquibase-dialect/src/test/resources/changelogs/update/create-table.xml
new file mode 100644
index 0000000..a1d8225
--- /dev/null
+++ b/liquibase-dialect/src/test/resources/changelogs/update/create-table.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ create table test(
+ id Int32 NOT NULL,
+ code Text NOT NULL,
+ token bool,
+ PRIMARY KEY (id)
+ );
+
+
+ drop table test;
+
+
+
\ No newline at end of file
diff --git a/liquibase-dialect/src/test/resources/changelogs/update/insert.xml b/liquibase-dialect/src/test/resources/changelogs/update/insert.xml
new file mode 100644
index 0000000..22c211f
--- /dev/null
+++ b/liquibase-dialect/src/test/resources/changelogs/update/insert.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ insert into test(id, code, token)
+ values (1, 'A', null),
+ (2, 'A', null),
+ (3, 'A', null),
+ (4, 'B', true);
+
+
+
\ No newline at end of file
diff --git a/liquibase-dialect/src/test/resources/changelogs/update/update.xml b/liquibase-dialect/src/test/resources/changelogs/update/update.xml
new file mode 100644
index 0000000..9be3c9a
--- /dev/null
+++ b/liquibase-dialect/src/test/resources/changelogs/update/update.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ update test set token= true where code = 'A';
+
+
+ update test set token=NULL where code='A';
+
+
+
\ No newline at end of file