woocommerce get_available_variations doesn't work properly

I'm using $variations = $product->get_available_variations(); to get all variables of products and show them as a table in description section. it works for most of the products but I've found a product that has 3 variations but it shows two of them. I've checked wp_posts table and all 3 variations are related to that parent product:


SELECT id,post_parent FROM wp_posts WHERE post_parent=843 AND post_type='product_variation';
+-----+-------------+
| id  | post_parent |
+-----+-------------+
| 846 |         843 |
| 849 |         843 |
| 852 |         843 |
+-----+-------------+

but when I use var_dump($variations); the array returns two ID: 846 and 849.

This is full function of mine:

function add_content_after_addtocart_button_func() {

    global $product,$post;
    if( $product->is_type( 'variable' ) ){
        $variations = $product->get_available_variations();
        if (count($variations)>0) { ?> 
            <div class="spb_text_column">
            <table class="sf-table standard_minimal">
                <tr>
                    <th>SKU</th>
                    <th>Length (cm)</th>
                    <th>Width (cm)</th>
                    <th>Height (cm)</th>
                    <th>Price</th>
                </tr>
                <?php for ($j=0; $j < count($variations); $j++) { ?>
                    <tr>
                        <td><?php echo ($variations[$j]['sku'])?$variations[$j]['sku']:$variations[$j]['name'];?></td>
                        <td><?php echo $variations[$j]['length'];?></td>
                        <td><?php echo $variations[$j]['width'];?></td>
                        <td><?php echo $variations[$j]['height'];?></td>
                        <td><?php echo number_format_i18n($variations[$j]['price']);?></td>
                    </tr>
                <?php } ?>
            </table>
            </div>
        <?php }
    }

}

please help to figure it out this problem.