Puedes utilizar un Trigger, por ejemplo
CREATE Trigger TCU_Presupuesto ON presupuesto FOR INSERT, UPDATE
AS
BEGIN
IF EXISTS(SELECT Estado FROM presupuesto WHERE Estado=4
GROUP BY Estado HAVING Count(*) > 1)
BEGIN
RAISERROR('Ya existe un estado 4',16,1)
ROLLBACK
END
END