diff --git a/IO/SQL/CMakeLists.txt b/IO/SQL/CMakeLists.txt
index 9a6079848f2db16f7d364e2304636661ccfb48a0..7a3eb275aff978dd780927b4261aeb98b7e895ad 100644
--- a/IO/SQL/CMakeLists.txt
+++ b/IO/SQL/CMakeLists.txt
@@ -1,21 +1,22 @@
-set(Module_SRCS
-  vtkDatabaseToTableReader.cxx
-  vtkRowQuery.cxx
-  vtkRowQueryToTable.cxx
-  vtkSQLDatabase.cxx
-  #  vtkSQLDatabaseGraphSource.cxx
-  vtkSQLDatabaseSchema.cxx
-  vtkSQLDatabaseTableSource.cxx
-  #vtkSQLGraphReader.cxx
-  vtkSQLQuery.cxx
-  vtkTableToDatabaseWriter.cxx
-  )
+set(classes
+  vtkDatabaseToTableReader
+  vtkRowQuery
+  vtkRowQueryToTable
+  vtkSQLDatabase
+  #vtkSQLDatabaseGraphSource
+  vtkSQLDatabaseSchema
+  vtkSQLDatabaseTableSource
+  #vtkSQLGraphReader
+  vtkSQLiteDatabase
+  vtkSQLiteQuery
+  vtkSQLiteToTableReader
+  vtkSQLQuery
+  vtkTableToDatabaseWriter
+  vtkTableToSQLiteWriter)
 
-set(SQLite_SRCS
-  vtkSQLiteDatabase.cxx
-  vtkSQLiteQuery.cxx
-  vtkSQLiteToTableReader.cxx
-  vtkTableToSQLiteWriter.cxx
-  )
+set(private_headers
+  vtkSQLiteDatabaseInternals.h)
 
-vtk_module_library(vtkIOSQL ${Module_SRCS} ${SQLite_SRCS})
+vtk_module_add_module(VTK::IOSQL
+  CLASSES ${classes}
+  PRIVATE_HEADERS ${private_headers})
diff --git a/IO/SQL/Testing/Cxx/CMakeLists.txt b/IO/SQL/Testing/Cxx/CMakeLists.txt
index 5c2fd8c11998c55a94150ace60e935a6be6aa806..b335cf13035ad44f1aac1fd697a2c69318f75c5e 100644
--- a/IO/SQL/Testing/Cxx/CMakeLists.txt
+++ b/IO/SQL/Testing/Cxx/CMakeLists.txt
@@ -10,7 +10,7 @@ vtk_test_cxx_executable(vtkIOSQLCxxTests tests)
 # Run these serial to avoid intermittent test failures on machines
 # that do parallel testing
 foreach(test IN LISTS tests)
-  set_tests_properties(vtkIOSQLCxx-${test}
+  set_tests_properties(VTK::IOSQLCxx-${test}
     PROPERTIES
       RUN_SERIAL 1)
 endforeach()
diff --git a/IO/SQL/module.cmake b/IO/SQL/module.cmake
deleted file mode 100644
index 4fdb45e80a9c40e445356c80305cc981101ef689..0000000000000000000000000000000000000000
--- a/IO/SQL/module.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
-
-vtk_module(vtkIOSQL
-  GROUPS
-    StandAlone
-  TEST_DEPENDS
-    vtkIOLegacy
-    vtkTestingIOSQL
-    vtkTestingCore
-  KIT
-    vtkIO
-  DEPENDS
-    vtkCommonCore
-    vtkCommonExecutionModel
-    vtkIOCore
-  PRIVATE_DEPENDS
-    vtksqlite
-    vtksys
-  )
diff --git a/IO/SQL/vtk.module b/IO/SQL/vtk.module
new file mode 100644
index 0000000000000000000000000000000000000000..e484416375f25091ff56bba746c6c95f87bbb181
--- /dev/null
+++ b/IO/SQL/vtk.module
@@ -0,0 +1,20 @@
+NAME
+  VTK::IOSQL
+LIBRARY_NAME
+  vtkIOSQL
+IMPLEMENTABLE
+KIT
+  VTK::IO
+GROUPS
+  StandAlone
+DEPENDS
+  VTK::CommonCore
+  VTK::CommonExecutionModel
+  VTK::IOCore
+PRIVATE_DEPENDS
+  VTK::sqlite
+  VTK::vtksys
+TEST_DEPENDS
+  VTK::IOLegacy
+  VTK::TestingCore
+  VTK::TestingIOSQL