Easily show rows that are different among multiple tables
The wanted query is not trivial at all but it would be a bit easier to write if there was one table and not one per year. So let's create a VIEW:

CREATE VIEW states AS
    SELECT stateID, propertyID, owner, area, timestampGot, 2010 AS year
    FROM states_2010
    UNION ALL
    ...
    SELECT stateID, propertyID, owner, area, timestampGot, 2017
    FROM states_2017
    UNION ALL
    SELECT stateID, propertyID, owner, area, timestampGot, 2018
    FROM states_2018
    ... ;


Then, I assume that you want to get data from the earliest and the latest date per product. So we can use one of the (many) ways to get a greatest-n-per-group result (applied twice, one for the earliest date and another for the latest):

select 
    p.propertyid,
    s.owner,
    s.area,
    s.timestampgot,
    s.stateid
from properties as p
  left join states as s                    -- earliest timestamp
  on  s.propertyid = p.propertyid          -- for this property
  and (s.year, s.timestampgot) =
      ( select si.year, si.timestampgot
        from states as si
        where si.propertyid = p.propertyid
        order by si.year, si.timestampgot
        limit 1
      )
union all
select 
    p.propertyid,
    s.owner,
    s.area,
    s.timestampgot,
    s.stateid
from properties as p
  left join states as s                    -- latest timestamp
  on  s.propertyid = p.propertyid
  and (s.year, s.timestampgot) =
      ( select si.year, si.timestampgot
        from states as si
        where si.propertyid = p.propertyid
        order by si.year desc, si.timestampgot desc
        limit 1
      ) ;