diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for persistent-sqlite
 
+## 2.13.0.4
+
+* `aeson-2.0` support [#1351](https://github.com/yesodweb/persistent/pull/1351/)
+
 ## 2.13.0.3
 
 * Somehow failed to properly release the safe-to-remove changes.
diff --git a/Database/Persist/Sqlite.hs b/Database/Persist/Sqlite.hs
--- a/Database/Persist/Sqlite.hs
+++ b/Database/Persist/Sqlite.hs
@@ -72,6 +72,9 @@
 import Data.Acquire (Acquire, mkAcquire, with)
 import Data.Maybe
 import Data.Aeson
+#if MIN_VERSION_aeson(2,0,0)
+import qualified Data.Aeson.KeyMap as KeyMap
+#endif
 import Data.Aeson.Types (modifyFailure)
 import Data.Conduit
 import qualified Data.Conduit.Combinators as C
@@ -728,13 +731,18 @@
 
 instance FromJSON SqliteConf where
     parseJSON v = modifyFailure ("Persistent: error loading Sqlite conf: " ++) $ flip (withObject "SqliteConf") v parser where
-        parser o = if HashMap.member "database" o
+        parser o = if "database" `isMember` o
                       then SqliteConf
                             <$> o .: "database"
                             <*> o .: "poolsize"
                       else SqliteConfInfo
                             <$> o .: "connInfo"
                             <*> o .: "poolsize"
+#if MIN_VERSION_aeson(2,0,0)
+        isMember = KeyMap.member
+#else
+        isMember = HashMap.member
+#endif
 
 instance PersistConfig SqliteConf where
     type PersistConfigBackend SqliteConf = SqlPersistT
diff --git a/persistent-sqlite.cabal b/persistent-sqlite.cabal
--- a/persistent-sqlite.cabal
+++ b/persistent-sqlite.cabal
@@ -1,5 +1,5 @@
 name:            persistent-sqlite
-version:         2.13.0.3
+version:         2.13.0.4
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -1,18 +1,18 @@
-{-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE DerivingStrategies #-}
 {-# OPTIONS_GHC -fno-warn-unused-top-binds #-}
 
 import SqliteInit
@@ -21,21 +21,23 @@
 import qualified CustomPersistFieldTest
 import qualified CustomPrimaryKeyReferenceTest
 import qualified DataTypeTest
-import qualified EmptyEntityTest
 import qualified EmbedOrderTest
 import qualified EmbedTest
+import qualified EmptyEntityTest
 import qualified EquivalentTypeTest
 import qualified ForeignKey
+import qualified GeneratedColumnTestSQL
 import qualified HtmlTest
 import qualified LargeNumberTest
+import qualified LongIdentifierTest
 import qualified MaxLenTest
-import qualified MpsNoPrefixTest
-import qualified MpsCustomPrefixTest
+import qualified MaybeFieldDefsTest
 import qualified MigrationColumnLengthTest
 import qualified MigrationOnlyTest
-import qualified PersistentTest
-import qualified GeneratedColumnTestSQL
+import qualified MpsCustomPrefixTest
+import qualified MpsNoPrefixTest
 import qualified PersistUniqueTest
+import qualified PersistentTest
 import qualified PrimaryTest
 import qualified RawSqlTest
 import qualified ReadWriteTest
@@ -45,15 +47,14 @@
 import qualified TransactionLevelTest
 import qualified UniqueTest
 import qualified UpsertTest
-import qualified LongIdentifierTest
 
-import Control.Exception (handle, IOException, throwIO)
+import Control.Exception (IOException, handle, throwIO)
 import Control.Monad.Catch (catch)
 import Control.Monad.IO.Class (liftIO)
 import Control.Monad.Reader (MonadReader)
 import Control.Monad.Trans.Resource (MonadResource)
 import qualified Data.ByteString as BS
-import Data.Conduit ((.|), runConduit)
+import Data.Conduit (runConduit, (.|))
 import qualified Data.Conduit.List as CL
 import Data.Fixed
 import Data.IntMap (IntMap)
@@ -62,9 +63,9 @@
 import Filesystem (removeFile)
 import Filesystem.Path.CurrentOS (fromText)
 import qualified Lens.Micro as Lens
-import Test.QuickCheck.Arbitrary (Arbitrary, arbitrary)
 import System.IO (hClose)
 import System.IO.Temp (withSystemTempFile)
+import Test.QuickCheck.Arbitrary (Arbitrary, arbitrary)
 
 import Database.Persist.Sqlite
 import qualified Database.Sqlite as Sqlite
@@ -160,6 +161,7 @@
             , LargeNumberTest.numberMigrate
             , UniqueTest.uniqueMigrate
             , MaxLenTest.maxlenMigrate
+            , MaybeFieldDefsTest.maybeFieldDefMigrate
             , Recursive.recursiveMigrate
             , CompositeTest.compositeMigrate
             , MigrationTest.migrationMigrate
@@ -206,6 +208,7 @@
         LargeNumberTest.specsWith db
         UniqueTest.specsWith db
         MaxLenTest.specsWith db
+        MaybeFieldDefsTest.specsWith db
         Recursive.specsWith db
         SumTypeTest.specsWith db (Just (runMigrationSilent SumTypeTest.sumTypeMigrate))
         MigrationOnlyTest.specsWith db
