Use the following query to check the Certificate table for overlapping timestamps.  


select ant.*,post.* , DATEDIFF(day, ant.ValidTo, post.ValidFrom)
from
(SELECT
      CertificateId
    , ValidFrom
    , ValidTo
    , ROW_NUMBER() OVER(PARTITION BY CertificateId ORDER BY ValidTo desc, ValidFrom desc)  AS [current]
    ,(ROW_NUMBER() OVER(PARTITION BY CertificateId ORDER BY ValidTo desc, ValidFrom desc))-1 AS previous
FROM CertificateHistory 
) ant
inner join
(SELECT
      CertificateId
    , ValidFrom
    , ValidTo
    , ROW_NUMBER() OVER(PARTITION BY CertificateId ORDER BY ValidTo desc, ValidFrom desc ) AS [current]
    FROM CertificateHistory
) post
ON ant.CertificateId = post.CertificateId AND ant.previous = post.[current]
WHERE ant.ValidTo > post.ValidFrom