diff --git a/Yesod/Persist/Core.hs b/Yesod/Persist/Core.hs
--- a/Yesod/Persist/Core.hs
+++ b/Yesod/Persist/Core.hs
@@ -20,9 +20,6 @@
     ) where
 
 import Database.Persist
-#if !MIN_VERSION_persistent(2, 0, 0)
-import Database.Persist.Sql (SqlPersistT, unSqlPersistT)
-#endif
 import Control.Monad.Trans.Reader (ReaderT, runReaderT)
 
 import Yesod.Core
@@ -34,24 +31,13 @@
 import Yesod.Core.Types (HandlerContents (HCError))
 import qualified Database.Persist.Sql as SQL
 
-#if MIN_VERSION_persistent(2, 0, 0)
 unSqlPersistT :: a -> a
 unSqlPersistT = id
-#endif
 
-#if MIN_VERSION_persistent(2, 0, 0)
 type YesodDB site = ReaderT (YesodPersistBackend site) (HandlerT site IO)
-#else
-type YesodDB site = YesodPersistBackend site (HandlerT site IO)
-#endif
 
-#if MIN_VERSION_persistent(2, 0, 0)
 class Monad (YesodDB site) => YesodPersist site where
     type YesodPersistBackend site
-#else
-class Monad (YesodPersistBackend site (HandlerT site IO)) => YesodPersist site where
-    type YesodPersistBackend site :: (* -> *) -> * -> *
-#endif
     runDB :: YesodDB site a -> HandlerT site IO a
 
 -- | Helper for creating 'runDB'.
@@ -94,11 +80,7 @@
 -- | Helper for implementing 'getDBRunner'.
 --
 -- Since 1.2.0
-#if MIN_VERSION_persistent(2, 0, 0)
 defaultGetDBRunner :: YesodPersistBackend site ~ SQL.SqlBackend
-#else
-defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersistT
-#endif
                    => (site -> Pool SQL.Connection)
                    -> HandlerT site IO (DBRunner site, HandlerT site IO ())
 defaultGetDBRunner getPool = do
@@ -142,20 +124,9 @@
 respondSourceDB ctype = respondSource ctype . runDBSource
 
 -- | Get the given entity by ID, or return a 404 not found if it doesn't exist.
-#if MIN_VERSION_persistent(2, 0, 0)
 get404 :: (MonadIO m, PersistStore (PersistEntityBackend val), PersistEntity val)
        => Key val
        -> ReaderT (PersistEntityBackend val) m val
-#else
-get404 :: ( PersistStore (t m)
-          , PersistEntity val
-          , Monad (t m)
-          , m ~ HandlerT site IO
-          , MonadTrans t
-          , PersistMonadBackend (t m) ~ PersistEntityBackend val
-          )
-       => Key val -> t m val
-#endif
 get404 key = do
     mres <- get key
     case mres of
@@ -164,20 +135,9 @@
 
 -- | Get the given entity by unique key, or return a 404 not found if it doesn't
 --   exist.
-#if MIN_VERSION_persistent(2, 0, 0)
 getBy404 :: (PersistUnique (PersistEntityBackend val), PersistEntity val, MonadIO m)
          => Unique val
          -> ReaderT (PersistEntityBackend val) m (Entity val)
-#else
-getBy404 :: ( PersistUnique (t m)
-            , PersistEntity val
-            , m ~ HandlerT site IO
-            , Monad (t m)
-            , MonadTrans t
-            , PersistEntityBackend val ~ PersistMonadBackend (t m)
-            )
-         => Unique val -> t m (Entity val)
-#endif
 getBy404 key = do
     mres <- getBy key
     case mres of
@@ -188,11 +148,3 @@
 -- GHC 7.4.2 that leads to segfaults. This is a workaround.
 notFound' :: MonadIO m => m a
 notFound' = liftIO $ throwIO $ HCError NotFound
-
-#if !MIN_VERSION_persistent(2, 0, 0)
-instance MonadHandler m => MonadHandler (SqlPersistT m) where
-    type HandlerSite (SqlPersistT m) = HandlerSite m
-    liftHandlerT = lift . liftHandlerT
-instance MonadWidget m => MonadWidget (SqlPersistT m) where
-    liftWidgetT = lift . liftWidgetT
-#endif
diff --git a/test/Yesod/PersistSpec.hs b/test/Yesod/PersistSpec.hs
--- a/test/Yesod/PersistSpec.hs
+++ b/test/Yesod/PersistSpec.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies #-}
 {-# LANGUAGE EmptyDataDecls, FlexibleContexts, GADTs #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE CPP #-}
 module Yesod.PersistSpec where
 
@@ -29,11 +30,7 @@
 
 instance Yesod App
 instance YesodPersist App where
-#if MIN_VERSION_persistent(2, 0, 0)
     type YesodPersistBackend App = SqlBackend
-#else
-    type YesodPersistBackend App = SqlPersistT
-#endif
     runDB = defaultRunDB appConfig appPool
 instance YesodPersistRunner App where
     getDBRunner = defaultGetDBRunner appPool
diff --git a/yesod-persistent.cabal b/yesod-persistent.cabal
--- a/yesod-persistent.cabal
+++ b/yesod-persistent.cabal
@@ -1,5 +1,5 @@
 name:            yesod-persistent
-version:         1.2.3.1
+version:         1.4.0
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -14,9 +14,9 @@
 
 library
     build-depends:   base                      >= 4        && < 5
-                   , yesod-core                >= 1.2.2    && < 1.3
-                   , persistent                >= 1.2      && < 2.1
-                   , persistent-template       >= 1.2      && < 2.1
+                   , yesod-core                >= 1.4.0    && < 1.5
+                   , persistent                >= 2.1      && < 2.2
+                   , persistent-template       >= 2.1      && < 2.2
                    , transformers              >= 0.2.2
                    , blaze-builder
                    , conduit
