Unpivot a table in PostgreSQL
Unpivot can be done using an array and unnest:

select s.state, s.city, 'item'||t.i as items, t.item
from state1 s
  cross join lateral unnest(array[item1, item2, item3]) with ordinality as t(item,i);


Online example: http://rextester.com/VPDDN96018