public override async Task <int> LoadLastCheckpointAsync(string projectorIdentifier)
        {
            TCheckpointInfo checkpointInfo = null;

            try
            {
                checkpointInfo = connection.Get <TCheckpointInfo>(projectorIdentifier);
            }
            catch
            {
                try
                {
                    if (!connection.TableExists("CheckpointInfos"))
                    {
                        connection.CreateTable(typeof(CheckpointInfo));
                        checkpointInfo = connection.Get <TCheckpointInfo>(projectorIdentifier);
                    }
                }
                catch
                {
                }
                // TODO: error handling
            }

            if (checkpointInfo == null)
            {
                return(-1);
            }

            return(checkpointInfo.CheckpointNumber);
        }