diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9184b94..290f290 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -485,6 +485,14 @@ if(UA_ENABLE_ENCRYPTION)
     endif()
 endif()
 
+if(UA_ENABLE_HISTORIZING)
+    # The recommended way is to install mbedtls via the OS package manager. If
+    # that is not possible, manually compile mbedTLS and set the cmake variables
+    # defined in /tools/cmake/FindMbedTLS.cmake.
+    find_package(SQLite3 REQUIRED)
+    list(APPEND open62541_LIBRARIES ${SQLITE3_LIBRARIES})
+endif()
+
 if(UA_ENABLE_WEBSOCKET_SERVER)
     # The recommended way is to install libwebsockets via the OS package manager. If
     # that is not possible, manually compile libwebsockets and set the cmake variables
@@ -890,9 +898,11 @@ if(UA_ENABLE_HISTORIZING)
          ${PROJECT_SOURCE_DIR}/plugins/include/open62541/plugin/historydata/history_database_default.h
          ${PROJECT_SOURCE_DIR}/plugins/include/open62541/plugin/historydata/history_data_gathering_default.h
          ${PROJECT_SOURCE_DIR}/plugins/include/open62541/plugin/historydata/history_data_backend_memory.h
+         ${PROJECT_SOURCE_DIR}/plugins/include/open62541/plugin/historydata/history_data_backend_sqlite.h
          )
     list(APPEND default_plugin_sources
          ${PROJECT_SOURCE_DIR}/plugins/historydata/ua_history_data_backend_memory.c
+         ${PROJECT_SOURCE_DIR}/plugins/historydata/ua_history_data_backend_sqlite.c
          ${PROJECT_SOURCE_DIR}/plugins/historydata/ua_history_data_gathering_default.c
          ${PROJECT_SOURCE_DIR}/plugins/historydata/ua_history_database_default.c
          )
diff --git a/tools/cmake/FindSQLite3.cmake b/tools/cmake/FindSQLite3.cmake
new file mode 100644
index 0000000..7249c08
--- /dev/null
+++ b/tools/cmake/FindSQLite3.cmake
@@ -0,0 +1,55 @@
+# - Find SQLite3
+# Find the SQLite includes and library
+# This module defines
+#  SQLITE3_INCLUDE_DIR, where to find mysql.h
+#  SQLITE3_LIBRARIES, the libraries needed to use MySQL.
+#  SQLITE3_FOUND, If false, do not try to use MySQL.
+#
+# Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
+   set(SQLITE3_FOUND TRUE)
+
+else(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
+
+  find_path(SQLITE3_INCLUDE_DIR sqlite3.h
+      /usr/include
+      /usr/local/include
+      $ENV{ProgramFiles}/SQLite/include
+      $ENV{SystemDrive}/SQLite/include
+      $ENV{ProgramFiles}/SQLite
+      $ENV{SystemDrive}/SQLite
+      $ENV{ProgramFiles}/SQLite3/include
+      $ENV{SystemDrive}/SQLite3/include
+      $ENV{ProgramFiles}/SQLite3
+      $ENV{SystemDrive}/SQLite3
+      )
+
+  find_library(SQLITE3_LIBRARIES NAMES sqlite3
+      PATHS
+      /usr/lib
+      /usr/local/lib
+      $ENV{ProgramFiles}/SQLite/lib
+      $ENV{SystemDrive}/SQLite/lib
+      $ENV{ProgramFiles}/SQLite
+      $ENV{SystemDrive}/SQLite
+      $ENV{ProgramFiles}/SQLite3/lib
+      $ENV{SystemDrive}/SQLite3/lib
+      $ENV{ProgramFiles}/SQLite3
+      $ENV{SystemDrive}/SQLite3
+      )
+
+  if(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
+    set(SQLITE3_FOUND TRUE)
+    message(STATUS "Found SQLite3: ${SQLITE3_INCLUDE_DIR}, ${SQLITE3_LIBRARIES}")
+  else(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
+    set(SQLITE3_FOUND FALSE)
+    message(STATUS "SQLite3 not found.")
+  endif(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
+
+  mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARIES)
+
+endif(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARIES)
