You didn't specify what version of Postgres you are running, but if it is 12 or above you can add a virtual (generated) column, then put a unique constraint on that column. See example:
alter table table_name add v_company_name text generated always as ( lower(company_name) stored);
alter table table_name add constraint company_name_bk unique (v_company_name);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…