How to determine if an IIR filter is causal or non-causal?
First of all, it's not correct to say "poles should (always) be inside the unit circle for an LTI system to be stable" ; unless it's implied that system is also causal. Otherwise, if the system is noncausal, then its poles should be outside of unit circle for the system being stable.

For IIR systems that are described by LCCDEs causality must be externally imposed on the system (consistent wit the initial conditions), and cannot be derived from the equation alone. For example, the system

$$y[n] + a y[n-1] = b x[n]$$ cannot be concluded to be causal, as the equation can also be written as

$$ y[n] = (-1/a) y[n+1] -(b/a) x[n+1] $$
which is (apparently) indicating a noncausal dependence on the current output on both future input and future output.

Therefore this difference equation can signify both a causal and a noncausal system. Its solution should be derived by assuming a causal system or noncausal system.

This is also understood by the fact that a given transfer function $H(z)$ will have a corresponding LCCDE representation, but will have multiple ROCs. For each ROC the LCCDE should be solved accordingly, yielding a different solution for each assumption. But the LCCDE is the same.

FIR systems do not have poles (except at origin or infinity) and have no issues with stability and they don't posses regions of convergences on the z-plane. Hence their equation will be signifying the causality such as:
$$ y[n] = a x[n+1] + b x[n] + c x[n-1]$$ 
is a noncausal FIR system and you cannot manipulate the given equation into a causal form.

Or the following system
$$ y[n] = a x[n] + b x[n-1] + c x[n-2]$$ 
is a causal FIR system and you cannot manipulate the given equation into a noncausal form...

So causality shall be an assumed property for IIR systems.